package ssh

type LsFile struct {
	IsFile bool   `json:"is_file"`
	Rights string `json:"rights"`
	Number int64  `json:"number"`
	Owner  string `json:"owner"`
	Group  string `json:"group"`
	Size   int64  `json:"size"`
	Modify string `json:"modify"`
	Name   string `json:"name"`
}

// // SRN S-空格符；T-回车符；N-换行符
// var filteSRTRegexp = regexp.MustCompile(`[^ \r\n]+`)

// func (own *Client) Ls(filename string) ([]*LsFile, error) {
// 	cmd := "ls -la --color=never " + filename
// 	data, err := own.Execute(cmd)
// 	if err != nil {
// 		return nil, err
// 	}

// 	metas := bytes.Split(data, []byte("\n"))
// 	files := make([]*LsFile, 0, len(metas))
// 	for _, meta := range metas {
// 		if len(meta) == 0 || bytes.HasPrefix(meta, []byte("total ")) {
// 			continue
// 		}

// 		fields := bytes.Split(bytes.TrimRight(meta, "\r"), []byte(" "))
// 		if fields = Filter(fields, ""); len(fields) != 9 {
// 			continue
// 		}

// 		file := &LsFile{
// 			Name:   fields[8],
// 			Owner:  fields[2],
// 			Group:  fields[3],
// 			Rights: fields[0],
// 			IsFile: fields[0][0] == '-',
// 			Modify: joinLsDatetime(fields[5], fields[6], fields[7]),
// 		}

// 		file.Number, _ = strconv.ParseInt(fields[1], 10, 64)
// 		file.Size, _ = strconv.ParseInt(fields[4], 10, 64)
// 		files = append(files, file)
// 	}

// 	return files, nil
// }

// func joinLsDatetime(month, day, time string) string {
// 	switch month {
// 	case "Jan":
// 		month = "01"
// 	case "Feb":
// 		month = "02"
// 	case "Mar":
// 		month = "03"
// 	case "Apr":
// 		month = "04"
// 	case "May":
// 		month = "05"
// 	case "Jun":
// 		month = "06"
// 	case "Jul":
// 		month = "07"
// 	case "Aug":
// 		month = "08"
// 	case "Sep":
// 		month = "09"
// 	case "Oct":
// 		month = "10"
// 	case "Nov":
// 		month = "11"
// 	case "Dec":
// 		month = "12"
// 	}

// 	if len(time) == 4 {
// 		return fmt.Sprintf("%s-%s-%02s", time, month, day)
// 	}

// 	return fmt.Sprintf("%s-%02s %s", month, day, time)
// }

// type NetworkCard struct {
// }
